import axios from "axios";

const request = axios.create({
    baseURL: '/api',
    // 请求连接超时设置
    timeout: 2 * 60 * 1000,
});

// 请求拦截器, 第一个参数是成功的回调，第二个参数是失败的回调
request.interceptors.request.use((config) => {
    if (config.method === 'post') {
        config.headers['Content-Type'] = 'application/json';
    }
    // 在发送请求之前做些什么
    const token = localStorage.getItem('token') || '';
    if (token) {
        config.headers.token = token;
    }
    return config;
}, (error) => {
    // 对请求错误做些什么
    return Promise.reject(error);
});

// 封装 post 方法
function post(url, data = {}) {
    return new Promise((resolve, reject) => {
        request.post(url, data).then(res => {
            resolve(res.data);
        }).catch(err => {
            reject(err);
        });
    });
}

export {
    post,
    request
};